package item;

import java.util.ArrayList;
import java.util.List;



public class itsUsersMementoCaretaker {
	private List<itsUsersMemento> lista;
	
	
	public itsUsersMementoCaretaker(){
		lista = new ArrayList<itsUsersMemento>();
	}
	
	public void guardarEstado(itsUsersMemento ium){
		lista.add(ium);
	}
	
	public void obtenerEstado(itsUsers user){
		obtenerEstado(user, -1);
	}
	
	public void obtenerEstado(itsUsers user, int historico){
		List<itsUsersMemento> busqueda = new ArrayList<itsUsersMemento>();
		for(itsUsersMemento i:lista){
			if( i.getId() == user.getId()){
				busqueda.add(i);
			}
		}
		
		if(busqueda.size() >0){
				if( (historico >= 0 ) && (historico<=busqueda.size())){
					//devuelvo cualquier elemento del historico
					user.restaurarMemento(busqueda.get(historico));
				}else{
					//por default devuelvo el ultimo memento
					user.restaurarMemento(busqueda.get(busqueda.size()-1));
				}
		}
		
	}
	
	
	
	//devuelve la cantidad de Undos que tiene un objeto
	public int tieneMemento(itsUsers user){
		int cantidad = 0;		
		for(itsUsersMemento i:lista){
			if( i.getId() == user.getId()){
				cantidad++;
			}
		}
		return cantidad;
	}



}


